@file:JvmName("TimeTool")
package com.oktest.measure.kt

import java.text.SimpleDateFormat
import java.util.*

/**
 * @Author hhh
 * @Date 2020/9/29
 */
val sdf = SimpleDateFormat(DATE_FORMAT_DEFAULT, Locale.CHINA)
// 一种格式的时间转为另一种格式
fun String?.formatOther(other: String): String {
    sdf.applyPattern(DATE_FORMAT_DEFAULT)
    // 当前数据库存储的都是该格式
    val date = try {
        sdf.parse(this)
    } catch (exception: Exception) {
        Date()
    }
    sdf.applyPattern(other)
    return sdf.format(date)
}

fun Date?.formatOther(other: String): String {
    // 当前数据库存储的都是该格式
    val date = this?:Date()
    sdf.applyPattern(other)
    return sdf.format(date)
}

// String 转时间
fun String?.toDate(format: String = DATE_FORMAT_DEFAULT) :Date{
    sdf.applyPattern(format)
    // 当前数据库存储的都是该格式
    return try {
        sdf.parse(this)
    } catch (exception: Exception) {
        Date()
    }
}

// 今日时间
fun toDayString(): String {
    sdf.applyPattern(DATE_FORMAT_DEFAULT)
    return sdf.format(Date())
}

// 格式化时间
fun Date.format(format: String = DATE_FORMAT_YMD2): String {
    sdf.applyPattern(format)
    return sdf.format(this)
}

// 时间
fun String.before(end: String, format: String = DATE_FORMAT_YMD2) = resultTry(false){
    sdf.applyPattern(format)
    val startDate = sdf.parse(this)
    val endDate = sdf.parse(end)
    return startDate.before(endDate)
}

